package com.xhh.nphm.system.service;


import com.xhh.nphm.system.domain.BSort;
import com.xhh.nphm.system.domain.BuserDept;
import com.xhh.nphm.system.domain.SensitiveInfoField;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

public interface ICommonService {

    /**
     * 查询内容分类
     *
     * @return
     */
    public List<Map> findContentCate();

    /**
     * 智能派单
     * @param content
     * @return
     */
    List<Map> findWork(String content,String areaName);

    /**
     * 查询地区
     * @return
     */
    List<Map> findArea();

    /**
     * 查询用户类别
     * @return
     */
    List<Map> findUserType();

    /**
     * 查询证件类型
     * @return
     */
    List<Map> findCerType();

    /**
     * 查询来电类别
     * @return
     */
    List<Map> findTelType();

    /**
     * 查询工单性质
     * @return
     */
    List<Map> findWorkFormType();

    /**
     * 查询办理方式
     * @return
     */
    List<Map> findBanliType();

    /**
     * 查询内容分类
     * @return
     */
    List<Map> findContentCategories();

    /**
     * 查询系统公告类别
     * @return
     */
    List<Map> findNtcTypes();

    /**
     * 办理期限
     * @param date yyyy-MM-dd
     * @return
     */
    String nextXWorkdayGet(String date);

    /**
     * 查询延期理由
     * @return
     */
    List<Map> delayReasonList();

    /**
     * 查询来电交办意见
     * @return
     */
    List<Map> findOpinion();

    /**
     * 查询信件处理意见
     * @return
     */
    List<Map> findOpinionM();

    /**
     * 查询来电交办意见
     * @return
     */
    List<Map> findSeatsRemark();

    /**
     * 查询本级部门
     * @param fpArea
     * @param deptNo
     * @return
     */
    List<Map> queryFlatDept(String fpArea, String deptNo);

    /**
     * 查询下级部门
     * 区(市)县
     * @param fpParent
     * @return
     */
    List<Map> querySonDept(String fpParent);

    List<String> findAllDept(String fpArea, String deptNo);

    /**
     * 查询敏感信息属性种类
     *
     * @return
     */
    List<SensitiveInfoField> findSensitiveField();

    /**
     * 查询重要代办事项
     * @param fpRole 用户角色
     * @param unitId 部门编号
     * @return 列表
     */
    List<Map> psPgFstWait(String fpRole, String unitId, boolean flag);


    /**
     * 办理期限
     * @param day 延期天数
     * @param date yyyy-MM-dd
     * @return
     */
    String nextXWorkdayGet(int day, String date);

    /**
     * 上级催办
     * @param deptId
     * @return
     */
    Map<String,Object> supUrgeOrder(String deptId);

    /**
     * 获取下级部门编号
     * @param fpArea
     * @param deptNo
     * @return
     */
    List<String> findAllDeptId(String fpArea, String deptNo);

    /**
     * 查询类别编号
     * @param s
     * @return
     */
    List<BSort> findBSortNoByName(String sortName, int level);

    /**
     * 查询类别编号 通过父类型
     * @param sortName
     * @param parentNo
     * @return
     */
    BSort selectBSortNoByParent(String sortName, String parentNo);

    /**
     * 查询直派部门
     * 区(市)县
     * @param fpParent
     * @return
     */
    List<Map> queryDirectDept(String fpParent);
}
